import { takeEvery, put } from 'redux-saga/effects'
import { loadProducts, saveProducts } from '../actions/product.action'
import axios from 'axios'

function* handleLoadProducts() {
	// 向服务器端发送请求 加载商品列表数据
	const { data } = yield axios.get('http://localhost:3005/goods')
	// 将商品列表数据保存到本地的 store 对象中
	// 这个action会被 reducer 接收
	yield put(saveProducts(data))
}

// saga 中要求我们导出一个 genertor函数
export default function* productSaga() {
	// 接收 action 加载商品列表数据
	// 接收到第一个 action 就回去调用 handleLoadProducts 函数
	yield takeEvery(loadProducts, handleLoadProducts)
}
